This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
Quantization generally refers to a process in digital signal processing, where a continuous range of values, for example, are approximated by a smaller set of discrete symbols or integer values. A common use of quantization is in lossy data compression. An example of a lossy compression system that utilizes quantization is Joint Photographic Experts Group (JPEG) image compression. During JPEG encoding, data representing an image is processed using a discrete cosine transform. The image data is quantized and entropy encoded. By using quantization, the precision of transformed image data values are reduced, and thus, the number of bits needed to represent the image can be reduced. For example, images can be represented with acceptable quality using JPEG at less than 3 bits per pixel, where before JPEG compression, 24 bits per pixel are typically needed to represent an image.
Another common example of lossy compression is seen with the digital transmission of speech signals. Conventionally, digitally transmitting speech signals involves sampling an analog speech waveform with an analog-to-digital converter, speech compression (i.e., encoding), transmission, speech decompression (i.e., decoding), digital-to-analog conversion, and playback into an earpiece or a loudspeaker. Speech compression, like JPEG compression, may be used to reduce the number of bits used to represent a speech signal.
Speech compression systems known as codecs utilize various algorithms to encode the original speech while attempting to maintain high quality reconstructed speech. Conventionally, an input speech signal, or its parametric representation, is compressed and quantized using a quantizer. Quantization, as described above, refers to a process that maps inputs, such as for example, various speech parameters that comprise a speech signal, within a specified range to a common value. In other words, speech coding involves forming an alternative representation of speech using a set of parameters, wherein the quantization is performed on a corresponding parametric vector(s) and/or scalar values. Inputs in different ranges are mapped to different common values. A quantization partition defines a plurality of contiguous, non-overlapping ranges of values within a set of real numbers representing the input speech signal. A codebook is utilized to tell the quantizer which common value to assign to inputs that fall within each range of the partition, where each common value of the codebook is commonly referred to as a codeword.
The quantizer itself can be thought of as comprising an encoder and a decoder for quantizing and dequantizing, respectively, where the encoder receives an input signal and outputs an index of its associated codeword. Various methods can be used to identify a proper codeword to be associated with the input signal. The decoder, upon receipt of the index or indices, converts them to corresponding codewords, where the codewords are output as quantized values representing the original input signal.
These speech compression techniques have resulted in lowering the amount of bandwidth used to transmit a speech signal. However, as described above, quantizers and their codebooks have traditionally been fixed in terms of their structure and size e.g., current speech coders used in mobile environments utilize fixed codebooks stored in memory during a build process. Furthermore, most speech coder binaries and their quantizers are stored in the ROM storage of mobile devices. As a consequence, the current speech coders are not truly flexible, and updating the quantizers becomes a difficult task.